package 牛客周赛.牛客周赛Round88;

import java.util.Scanner;

/**
 * @Title: D
 * @Author 贾金博
 * @Package 牛客周赛.牛客周赛Round88
 * @Date 2025/4/7 上午11:19
 * @description: this is  D
 */
public class D {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int t = sc.nextInt();
        while(t -- > 0 ) {
            int x = sc.nextInt();
            // 去检查这个x是不是存在一个对应的z 使得 x 和 x + z 是满足条件的
            // 主要注意的是 z 是要去  z >= 1 && z < x的
            // 哪种情况是 -1 呢
            // 只要这个数的二进制存在0 那么它就是存在与其匹配的z的
            if(checkZero(x) == -1) { // 表示没有与其进行匹配的数
                System.out.println(-1);
            } else {
               // System.out.println("pos = " + checkZero(x));
                // 复习一下快速幂
                System.out.println(ksm(2, checkZero(x) - 1));
            }
        }
    }

    // 快速幂
    private static int ksm(int a, int b) {
        int ret = 1;
        while(b != 0 ) {
            if((b & 1) == 1) {
                ret = ret *  a;
            }
            b >>= 1; // 也即是除以2的操作
            a = a * a;
        }
        return ret;
    }


    // check这个数的0的位置 然后进行替换 就是新的数了
    public static int checkZero(int x) {
        int pos = 1;
        while(x != 0 ) {
            if((x & 1 ) == 0) { // 表示的是x的最后一位是 0
                return pos;
            }
            // 右移一位
            x /= 2;
            pos ++ ;
        }
         return -1;
    }
}
